$(function() {
/* Search and login */
$(".search_btn").on('click', function () {
$(".login_block").removeClass('active');
$(".login_btn").removeClass('active');
$(".searchblock").toggleClass('active');
$(".search_btn").toggleClass('active');
$(".searchform").focus(200);
return false;
});
$(".login_btn").on('click', function () {
$(".searchblock").removeClass('active');
$(".search_btn").removeClass('active');
$(".login_block").toggleClass('active');
$(".login_btn").toggleClass('active');
return false;
});
/* Menu */
$('.nav_btn').on('click', function () {
$("body").addClass('active_menu');
return false;
});
$('.close_bg').on('click', function () {
$("body").removeClass('active_menu');
return false;
});
});
function comm_image_upload(id){
$('#comm_image_upload').remove();
$('body').append("
");
$('#comm_image_upload').dialog({
autoOpen: true,
width: 530,
height: 300,
buttons:{
"Закрыть":function(){
$(this).dialog('close');
}
}
});
return false;
}
$(document).on('click', '[data-afs-id]', function () {
var $this = $(this),
$data = $this.data();
$.ajax({
url: dle_root + 'engine/ajax/full-story.php',
type: 'GET',
dataType: 'html',
data: {
newsId: $data.afsId, // Обязательная переменная
preset: ($data.afsPreset) ? $data.afsPreset : '', // Название файла с настройками (необязательно)
template: ($data.afsTemplate) ? $data.afsTemplate : '', // Название файла с шаблоном (необязательно)
},
})
.done(function (data) {
var $html = $(data);
// Данные получены, можно заняться разбором и показать их в диалоге
// Ниже простейший пример вывода контента в стандартном модальном окне DLE
var modalId = 'afs-' + $data.afsId + '-' + $data.afsPreset + '-' + $data.afsTemplate;
modalId = modalId.replace(/\//g, "-");
var $magnificPopup = $('');
$magnificPopup
.appendTo('body') // Добавляем блок на страницу
.find('#' + modalId) // Ищем интересующий нас селектор
.html($html) // Вставляем в него полученный код
.dialog({ // Показываем модальное окно
width: 800
});
})
.fail(function () {
console.log("full-story error");
});
});
$(document).ready(function(){
$('body').on('click','#nav-load a',function(){
var urlNext = $(this).attr('href');
var scrollNext = $(this).offset().top - 200;
if (urlNext !== undefined) {
$.ajax({
url: urlNext,
beforeSend: function() {
ShowLoading('');
},
success: function(data) {
$('#bottom-nav').remove();
$('#dle-content').append($('#dle-content', data).html());
$('#dle-content').after($('#bottom-nav'));
window.history.pushState("", "", urlNext);
$('html, body').animate({scrollTop:scrollNext}, 800);
HideLoading('');
},
error: function() {
HideLoading('');
alert('что-то пошло не так');
}
});
};
return false;
});
});
;var thisUrl = window.location.pathname;
$(document)
.on('click touchstart', '[data-page-num]', function () {
var $this = $(this),
blockId = $this.parent().data('blockId'),
pageNum = $this.data('pageNum'),
$block = $('#' + blockId);
base_loader(blockId, 'start');
$.ajax({
url: dle_root + 'engine/ajax/controller.php',
dataType: 'html',
data: {
mod: 'blockpro',
pageNum: pageNum,
blockId: blockId,
thisUrl: thisUrl
}
})
.done(function (data) {
$block.html($(data).html());
})
.fail(function () {
base_loader(blockId, 'stop');
console.log("error");
})
.always(function () {
base_loader(blockId, 'stop');
});
})
.on('click touchstart', '[data-favorite-id]', function (event) {
event.preventDefault();
var $this = $(this),
fav_id = $this.data('favoriteId'),
action = $this.data('action');
ShowLoading('');
$.get(dle_root + 'engine/ajax/controller.php', {
fav_id: fav_id,
action: action,
skin: dle_skin,
mod: 'favorites',
alert: 1,
user_hash: dle_login_hash || ''
}, function (data) {
HideLoading('');
DLEalert(data, dle_info);
});
});
/**
* Простейшая функция для реализации эффекта загрузки блока
* Добавляет/удаляет заданный класс для заданного блока
* вся работа по оформлению ложится на css
*
* @author ПафНутиЙ
*
* @param id
* @param method
* @param className
*/
function base_loader(id, method, className) {
var $block = $('#' + id),
cname = (className) ? className : 'base-loader';
if (method === 'start') {
$block.addClass(cname);
}
if (method === 'stop') {
$block.removeClass(cname);
}
}
/**
* Выставление рейтинга
* @see base_rate
* @param rate
* @param id
*/
function base_rate(rate, id) {
ShowLoading('');
$.get(dle_root + 'engine/ajax/controller.php?mod=rating', {
go_rate: rate,
news_id: id,
skin: dle_skin,
user_hash: dle_login_hash || ''
}, function(data){
HideLoading('');
if (data.success) {
var rating = data.rating;
rating = rating.replace(/</g, '<');
rating = rating.replace(/>/g, '>');
rating = rating.replace(/&/g, '&');
$('[data-rating-layer="' + id + '"]').html(rating);
$('[data-vote-num-id="' + id + '"]').html(data.votenum);
$('#ratig-layer-' + id).html(rating);
$('#vote-num-id-' + id).html(data.votenum);
$('#likes-id-' + id).html(data.likes);
$('#dislikes-id-' + id).html(data.dislikes);
} else if (data.error) {
DLEalert(data.errorinfo, dle_info);
}
}, "json");
}
;(function($){$.fn.easyTooltip=function(options){var defaults={xOffset:10,yOffset:25,tooltipId:"easyTooltip",clickRemove:false,content:"",useElement:""};var options=$.extend(defaults,options);var content;this.each(function(){var title=$(this).attr("title");$(this).hover(function(e){content=(options.content!="")?options.content:title;content=(options.useElement!="")?$("#"+options.useElement).html():content;$(this).attr("title","");if(content!=""&&content!=undefined){$("body").append(""+content+"
");$("#"+options.tooltipId).css("position","absolute").css("top",(e.pageY-options.yOffset)+"px").css("left",(e.pageX+options.xOffset)+"px").css("display","none").fadeIn("slow")}},function(){$("#"+options.tooltipId).remove();$(this).attr("title",title)});$(this).mousemove(function(e){$("#"+options.tooltipId).css("top",(e.pageY-options.yOffset)+"px").css("left",(e.pageX+options.xOffset)+"px")});if(options.clickRemove){$(this).mousedown(function(e){$("#"+options.tooltipId).remove();$(this).attr("title",title)})}})}})(jQuery);
;/*!
* jQuery Cookie Plugin v1.4.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2006, 2014 Klaus Hartl
* Released under the MIT license
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD (Register as an anonymous module)
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS
module.exports = factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
var pluses = /\+/g;
function encode(s) {
return config.raw ? s : encodeURIComponent(s);
}
function decode(s) {
return config.raw ? s : decodeURIComponent(s);
}
function stringifyCookieValue(value) {
return encode(config.json ? JSON.stringify(value) : String(value));
}
function parseCookieValue(s) {
if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape...
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
}
try {
// Replace server-side written pluses with spaces.
// If we can't decode the cookie, ignore it, it's unusable.
// If we can't parse the cookie, ignore it, it's unusable.
s = decodeURIComponent(s.replace(pluses, ' '));
return config.json ? JSON.parse(s) : s;
} catch(e) {}
}
function read(s, converter) {
var value = config.raw ? s : parseCookieValue(s);
return $.isFunction(converter) ? converter(value) : value;
}
var config = $.cookie = function (key, value, options) {
// Write
if (arguments.length > 1 && !$.isFunction(value)) {
options = $.extend({}, config.defaults, options);
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
}
return (document.cookie = [
encode(key), '=', stringifyCookieValue(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// Read
var result = key ? undefined : {},
// To prevent the for loop in the first place assign an empty array
// in case there are no cookies at all. Also prevents odd result when
// calling $.cookie().
cookies = document.cookie ? document.cookie.split('; ') : [],
i = 0,
l = cookies.length;
for (; i < l; i++) {
var parts = cookies[i].split('='),
name = decode(parts.shift()),
cookie = parts.join('=');
if (key === name) {
// If second argument (value) is a function it's a converter...
result = read(cookie, value);
break;
}
// Prevent storing a cookie that we couldn't decode.
if (!key && (cookie = read(cookie)) !== undefined) {
result[name] = cookie;
}
}
return result;
};
config.defaults = {};
$.removeCookie = function (key, options) {
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};
}));
;/*! Lazy Load 1.9.7 - MIT license - Copyright 2010-2015 Mika Tuupola */
!function(a,b,c,d){var e=a(b);a.fn.lazyload=function(f){function g(){var b=0;i.each(function(){var c=a(this);if(!j.skip_invisible||c.is(":visible"))if(a.abovethetop(this,j)||a.leftofbegin(this,j));else if(a.belowthefold(this,j)||a.rightoffold(this,j)){if(++b>j.failure_limit)return!1}else c.trigger("appear"),b=0})}var h,i=this,j={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:b,data_attribute:"original",skip_invisible:!1,appear:null,load:null,placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"};return f&&(d!==f.failurelimit&&(f.failure_limit=f.failurelimit,delete f.failurelimit),d!==f.effectspeed&&(f.effect_speed=f.effectspeed,delete f.effectspeed),a.extend(j,f)),h=j.container===d||j.container===b?e:a(j.container),0===j.event.indexOf("scroll")&&h.bind(j.event,function(){return g()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,(c.attr("src")===d||c.attr("src")===!1)&&c.is("img")&&c.attr("src",j.placeholder),c.one("appear",function(){if(!this.loaded){if(j.appear){var d=i.length;j.appear.call(b,d,j)}a("
").bind("load",function(){var d=c.attr("data-"+j.data_attribute);c.hide(),c.is("img")?c.attr("src",d):c.css("background-image","url('"+d+"')"),c[j.effect](j.effect_speed),b.loaded=!0;var e=a.grep(i,function(a){return!a.loaded});if(i=a(e),j.load){var f=i.length;j.load.call(b,f,j)}}).attr("src",c.attr("data-"+j.data_attribute))}}),0!==j.event.indexOf("scroll")&&c.bind(j.event,function(){b.loaded||c.trigger("appear")})}),e.bind("resize",function(){g()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&e.bind("pageshow",function(b){b.originalEvent&&b.originalEvent.persisted&&i.each(function(){a(this).trigger("appear")})}),a(c).ready(function(){g()}),this},a.belowthefold=function(c,f){var g;return g=f.container===d||f.container===b?(b.innerHeight?b.innerHeight:e.height())+e.scrollTop():a(f.container).offset().top+a(f.container).height(),g<=a(c).offset().top-f.threshold},a.rightoffold=function(c,f){var g;return g=f.container===d||f.container===b?e.width()+e.scrollLeft():a(f.container).offset().left+a(f.container).width(),g<=a(c).offset().left-f.threshold},a.abovethetop=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollTop():a(f.container).offset().top,g>=a(c).offset().top+f.threshold+a(c).height()},a.leftofbegin=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollLeft():a(f.container).offset().left,g>=a(c).offset().left+f.threshold+a(c).width()},a.inviewport=function(b,c){return!(a.rightoffold(b,c)||a.leftofbegin(b,c)||a.belowthefold(b,c)||a.abovethetop(b,c))},a.extend(a.expr[":"],{"below-the-fold":function(b){return a.belowthefold(b,{threshold:0})},"above-the-top":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-screen":function(b){return a.rightoffold(b,{threshold:0})},"left-of-screen":function(b){return!a.rightoffold(b,{threshold:0})},"in-viewport":function(b){return a.inviewport(b,{threshold:0})},"above-the-fold":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-fold":function(b){return a.rightoffold(b,{threshold:0})},"left-of-fold":function(b){return!a.rightoffold(b,{threshold:0})}})}(jQuery,window,document);
;/**
* DLE Search
*
* @copyright 2018 PunPun (https://punpun.name)
* @version 3.4.0
* @link https://punpun.name
*/
var new_search_delay = false;
var new_search_value = '';
$(function() {
$('body').on('click', '#searchsuggestions a', function(e) {
e.preventDefault();
var url = $(this).find('a').context.href;
$.post(dle_root + 'engine/mod_punpun/dle_search/ajax/dle_search.php', {news: url}, function(data) {});
window.location.href = url;
});
});
function dleSearch() {
$('#ajax_search').attr('autocomplete', 'off');
$('#ajax_search').blur(function() {
$('#searchsuggestions').fadeOut();
});
$('#ajax_search').keyup(function() {
var inputString = $(this).val();
if (inputString.length == 0) {
$('#searchsuggestions').fadeOut();
} else {
if (new_search_value != inputString && inputString.length > 1) {
clearInterval(new_search_delay);
new_search_delay = setInterval(function() {
dleSearchInterval(inputString);
}, 200);
}
}
});
};
var thisUrl = window.location.pathname;
function dleSearchInterval (inputString) {
clearInterval(new_search_delay);
$('#searchsuggestions').remove();
$("body").append("");
$.post(dle_root + 'engine/mod_punpun/dle_search/ajax/dle_search.php', {query: inputString, thisUrl: thisUrl}, function(data) {
if (data != 'return') {
$('#searchsuggestions').html(data).fadeIn().css({'position' : 'absolute', top:0, left:0}).position({
my: 'left top',
at: 'left bottom',
of: '#ajax_search',
collision: 'fit flip'
});
}
});
new_search_value = inputString;
};
dleSearch();
;/**
* PostSymbol Controller
*/
$(function(){
var symbol = null,
sort = 'default',
stunned = false;
var lang = localStorage.getItem('ps_lang')*1;
if (lang) {
switchLang();
}
var dataSort = localStorage.getItem('ps_sort');
if (dataSort) {
sort = dataSort;
$('.ac-sort li[data-sort=' + sort + ']').addClass('current').siblings().removeClass('current');
}
/**
* Отправить ajax запрос
*/
function sendAjax() {
stunned = true;
$('.ac-result-list').html('').show();
$('.ac-result-empty').hide();
$('.ac-result').fadeIn(150).addClass('loading');
$.ajax({
url: dle_root + 'engine/mods/catalog/list',
type: 'POST',
dataType: 'html',
data: {symbol: symbol, sort: sort},
})
.done(function(d) {
if (d) {
$('.ac-result-list').html(d);
} else {
$('.ac-result-list').hide();
$('.ac-result-empty').fadeIn(200);
}
})
.fail(function(d) {
hideResult();
DLEalert(d.responseText, 'Ошибка');
})
.always(function() {
$('.ac-result').removeClass('loading');
stunned = false;
});
}
function settingsAjax(uri, data, callback) {
ShowLoading();
$.ajax({
url: dle_root + 'engine/mods/catalog/settings/' + uri,
type: 'POST',
dataType: 'html',
data: data,
})
.done(function(d) {
callback(d);
})
.fail(function(d) {
DLEalert(d.responseText, 'Ошибка');
})
.always(function() {
HideLoading();
});
}
/**
* Скрыть блок с новостями
*/
function hideResult() {
$('.ac-result').fadeOut(200);
$('.ac-catalog li a').removeClass('active');
return!1;
}
/**
* Переключить раскладку
*/
function switchLang() {
localStorage.setItem('ps_lang', lang);
$('.ac-catalog-lang').find('span').toggleClass('current');
$('.ac-catalog-rus, .ac-catalog-eng').toggleClass('current');
}
function rebuildStart(page) {
$.ajax({
url: dle_root + 'engine/mods/catalog/rebuild/start',
type: 'POST',
dataType: 'html',
})
.done(function(d) {
var max = $('.ac-rebuild-progress').data('pages');
if (page == max) {
$('.ac-rebuild-area').fadeOut(400, function(){$(this).remove()});
DLEalert('Символьный каталог успешно перестроен', dle_info);
return false;
}
page++;
var p = Math.round(100 * page / max);
p += '%';
$('.ac-rebuild-bar').css({
width: p
});
$('.ac-rebuild-progress-info').html(p);
rebuildStart(page);
})
.fail(function(d) {
DLEalert(d.responseText, 'Ошибка');
})
.always(function() {
HideLoading();
});
}
function rebuildBase() {
ShowLoading();
$.ajax({
url: dle_root + 'engine/mods/catalog/rebuild/',
type: 'POST',
dataType: 'html',
})
.done(function(d) {
$('body').append(d);
rebuildStart(0);
})
.fail(function(d) {
DLEalert(d.responseText, 'Ошибка');
})
.always(function() {
HideLoading();
});
}
$(document)
.on('click', '.ac-catalog-lang', function(e){
//Переключение раскладки
e.preventDefault();
lang = 1 - lang;
switchLang();
}).on('click', '.ac-catalog li a', function(e){
//Выбор буквы
e.preventDefault();
if (stunned) return!1;
if ($(this).hasClass('active')) {
return hideResult();
}
if (!$(this).data('symbol')) {
return!1;
}
$('.ac-catalog li a').removeClass('active');
$(this).addClass('active');
symbol = $(this).data('symbol');
$('.ac-result-link').attr('href', $(this).attr('href'));
sendAjax();
}).on('click', '.ac-sort li:not(.current)', function(e){
//Сортировка
e.preventDefault();
if (stunned) return!1;
$(this).addClass('current').siblings().removeClass('current');
sort = $(this).data('sort');
localStorage.setItem('ps_sort', sort);
sendAjax();
}).on('click', '.ac-settings-link', function(e){
//Сортировка
e.preventDefault();
hideResult();
$('#ac-settings').remove();
$('body').append('');
settingsAjax('', {}, function(d){
$('#ac-settings').html(d).dialog({
title: 'Настройки символьного каталога',
width: 800,
buttons: {
'Сохранить': function(){
var p = {};
$('#ac-settings [name]').each(function(){
var name = $(this).prop('name');
if ($(this).prop('type') == 'checkbox') {
if ($(this).prop('checked')) {
p[name] = 1;
}
} else {
p[name] = $(this).val();
}
});
settingsAjax('save', p, function(){
DLEalert('Настройки успешно сохранены', dle_info);
});
}, 'Перестроить': function(){
rebuildBase();
/*
settingsAjax('rebuild', {}, function(){
DLEalert('Символьный каталог успешно перестроен', dle_info);
});
*/
}, 'Закрыть': function(){
$(this).dialog('close');
}
}
});
});
}).on('click', 'body', function(e){
//Клик в любом другом месте сайта
if ($(e.target).closest('.ajax-catalog').length < 1) {
hideResult();
}
})
});